home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 #2 / Ham Radio 2000 - Volume 2.iso / HAMV2 / MISC / HCAL-27 / TRANCCT.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1997-01-29  |  11.7 KB  |  369 lines

  1. 10  'TRANCCT - Transistor Circuits - 21 NOV 95 rev. 29 SEP 96
  2. 20  IF EX$=""THEN EX$="EXIT"
  3. 30  CLS:KEY OFF:COLOR 7,0,1
  4. 40  UL$=STRING$(80,205)
  5. 50  E$=STRING$(80,32)
  6. 60  U$="###,###"
  7. 70  '
  8. 80  '.....start
  9. 90  CLS
  10. 100  R=1:C=1:GOSUB 340:PRINT ""      'diagrams
  11. 110  R=1:C=42:GOSUB 520:PRINT ""
  12. 120  R=13:C=1:GOSUB 700:PRINT ""
  13. 130  R=13:C=42:GOSUB 880
  14. 140  '
  15. 150  COLOR 15,1:LOCATE CSRLIN,26
  16. 160  PRINT " TYPICAL TRANSISTOR CIRCUITS ";
  17. 170  COLOR 14,4:LOCATE 25,22
  18. 180  PRINT " Press 1 to continue or 0 to EXIT... ";
  19. 190  COLOR 7,0
  20. 200  Z$=INKEY$:IF Z$=""THEN 200
  21. 210  IF Z$="0"THEN CLS:RUN EX$
  22. 220  IF Z$="1"THEN CLS:GOTO 250
  23. 230  GOTO 200
  24. 240  '
  25. 250  '.....title page
  26. 260  COLOR 15,2
  27. 270  PRINT " TRANSISTOR CIRCUIT DESIGN"TAB(57);"by George Murphy VE3ERP ";
  28. 280  COLOR 1,0:PRINT STRING$(80,223);
  29. 290  COLOR 7,0
  30. 300  GOSUB 1060  'preface
  31. 310  R=0:C=0:T=0
  32. 320  GOSUB 3560:GOTO 1470  'transistor design program
  33. 330  '
  34. 340  '.....common emitter
  35. 350  COLOR 0,7:LOCATE R
  36. 360  LOCATE ,C:PRINT "    SIGNAL       Vcc    Vcc            "
  37. 370  LOCATE ,C:PRINT " VARPTRSOUND SOURCE SOUNDSOUNDCOLOR    VARPTRDEFDBL     VARPTRDEFDBL  I outSOUNDDEFDBL   "
  38. 380  LOCATE ,C:PRINT "  Ri=internal     R1     RL  DEFSNGSOUNDR out   "
  39. 390  LOCATE ,C:PRINT "  resistance      CALL      BLOADSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND<UNK! {FEAE}>COLOR "
  40. 400  LOCATE ,C:PRINT "       I inSOUNDDEFDBL     CALLItSOUNDDEFDBLVARPTRSOUNDMOTORCOLORc         CALL "
  41. 410  LOCATE ,C:PRINT " +VARPTRSOUNDSOUNDSOUNDSOUNDRiSOUNDSOUNDSOUNDSOUNDSOUNDRsSOUNDSOUNDBEEPSOUNDSOUNDSOUNDSOUND<0xB4!>b CALLU1     Vout "
  42. 420  LOCATE ,C:PRINT " VARPTRMOTORCOLORDEFSNGCOLOR R inSOUNDDEFDBL     CALLRtSOUNDDEFDBLCLSSOUNDBSAVE'e         CALL "
  43. 430  LOCATE ,C:PRINT " CALL~CALLVin           R2     CALL        VARPTR<UNK! {FEAE}>' "
  44. 440  LOCATE ,C:PRINT " CLSBSAVE'DEFSNG'            CALL      CALL        CALL    "
  45. 450  LOCATE ,C:PRINT " -CLSSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDMOTORSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDMOTORSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND'    "
  46. 460  COLOR 15,2
  47. 470  LOCATE ,C:PRINT "            COMMON EMITTER             ";
  48. 480  COLOR 7,0
  49. 490  R=0:C=0
  50. 500  RETURN
  51. 510  '
  52. 520  '.....common emitter with emitter resistor
  53. 530  COLOR 0,7:LOCATE R
  54. 540  LOCATE ,C:PRINT "    SIGNAL       Vcc    Vcc            ";
  55. 550  LOCATE ,C:PRINT " VARPTRSOUND SOURCE SOUNDSOUNDCOLOR    VARPTRDEFDBL     VARPTRDEFDBL  I outSOUNDDEFDBL   ";
  56. 560  LOCATE ,C:PRINT "  Ri=internal     R1     RL  DEFSNGSOUNDR out   ";
  57. 570  LOCATE ,C:PRINT "  resistance      CALL      BLOADSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND<UNK! {FEAE}>COLOR ";
  58. 580  LOCATE ,C:PRINT "       I inSOUNDDEFDBL     CALLItSOUNDDEFDBLVARPTRSOUNDMOTORCOLORc         CALL ";
  59. 590  LOCATE ,C:PRINT " +VARPTRSOUNDSOUNDSOUNDSOUNDRiSOUNDSOUNDSOUNDSOUNDSOUNDRsSOUNDSOUNDBEEPSOUNDSOUNDSOUNDSOUND<0xB4!>b CALLU1     Vout ";
  60. 600  LOCATE ,C:PRINT " VARPTRMOTORCOLORDEFSNGCOLOR R inSOUNDDEFDBL     CALLRtSOUNDDEFDBLCLSSOUNDBSAVE'e         CALL ";
  61. 610  LOCATE ,C:PRINT " CALL~CALLVin           R2     R3       VARPTR<UNK! {FEAE}>' ";
  62. 620  LOCATE ,C:PRINT " CLSBSAVE'DEFSNG'            CALL      CALL        CALL    ";
  63. 630  LOCATE ,C:PRINT " -CLSSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDMOTORSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDMOTORSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND'    ";
  64. 640  COLOR 15,2
  65. 650  LOCATE ,C:PRINT "  COMMON EMITTER with Emitter Resistor ";
  66. 660  COLOR 7,0
  67. 670  R=0:C=0
  68. 680  RETURN
  69. 690  '
  70. 700  '.....common collector
  71. 710  COLOR 0,7:LOCATE R
  72. 720  LOCATE ,C:PRINT "    SIGNAL       Vcc    Vcc            "
  73. 730  LOCATE ,C:PRINT " VARPTRSOUND SOURCE SOUNDSOUNDCOLOR    VARPTRDEFDBL     VARPTRDEFDBL            "
  74. 740  LOCATE ,C:PRINT "  Ri=internal     R1     CALL             "
  75. 750  LOCATE ,C:PRINT "  resistance      CALL      CALL             "
  76. 760  LOCATE ,C:PRINT "       I inSOUNDDEFDBL     CALLItSOUNDDEFDBLVARPTRSOUNDMOTORCOLORc           "
  77. 770  LOCATE ,C:PRINT " +VARPTRSOUNDSOUNDSOUNDSOUNDRiSOUNDSOUNDSOUNDSOUNDSOUNDRsSOUNDSOUNDBEEPSOUNDSOUNDSOUNDSOUND<0xB4!>b CALLU1 I outSOUNDDEFDBL  "
  78. 780  LOCATE ,C:PRINT " VARPTRMOTORCOLORDEFSNGCOLOR R inSOUNDDEFDBL     CALLRtSOUNDDEFDBLCLSSOUNDBSAVE'e  DEFSNGSOUNDR out  "
  79. 790  LOCATE ,C:PRINT " CALL~CALLVin           R2     BLOADSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND<UNK! {FEAE}>COLOR "
  80. 800  LOCATE ,C:PRINT " CLSBSAVE'DEFSNG'            CALL      RL       Vout "
  81. 810  LOCATE ,C:PRINT " -CLSSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDMOTORSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDMOTORSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND<UNK! {FEAE}>' "
  82. 820  COLOR 15,2
  83. 830  LOCATE ,C:PRINT "           COMMON COLLECTOR            ";
  84. 840  COLOR 7,0
  85. 850  R=0:C=0
  86. 860  RETURN
  87. 870  '
  88. 880  '.....common base
  89. 890  COLOR 0,7:LOCATE R
  90. 900  LOCATE ,C:PRINT "    SIGNAL       Vcc    Vcc            ";
  91. 910  LOCATE ,C:PRINT " VARPTRSOUND SOURCE SOUNDSOUNDCOLOR    VARPTRDEFDBL     VARPTRDEFDBL  I outSOUNDDEFDBL   ";
  92. 920  LOCATE ,C:PRINT "  Ri=internal     R1     RL  DEFSNGSOUNDR out   ";
  93. 930  LOCATE ,C:PRINT "  resistance      CALL      BLOADSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND<UNK! {FEAE}>COLOR ";
  94. 940  LOCATE ,C:PRINT "       I inSOUNDDEFDBL     CALLItSOUNDDEFDBLVARPTRSOUNDMOTORCOLORc         CALL ";
  95. 950  LOCATE ,C:PRINT " +VARPTRSOUNDSOUNDSOUNDSOUNDRiSOUNDSOUNDSOUNDSOUNDSOUNDRsSOUNDSOUNDBEEPSOUNDSOUNDSOUNDSOUND<0xB4!>e CALLU1     Vout ";
  96. 960  LOCATE ,C:PRINT " VARPTRMOTORCOLORDEFSNGCOLOR R inSOUNDDEFDBL     CALLRtSOUNDDEFDBLCLSSOUNDBSAVE'b         CALL ";
  97. 970  LOCATE ,C:PRINT " CALL~CALLVin           R2     CALL        VARPTR<UNK! {FEAE}>' ";
  98. 980  LOCATE ,C:PRINT " CLSBSAVE'DEFSNG'            CALL      CALL        CALL    ";
  99. 990  LOCATE ,C:PRINT " -CLSSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDMOTORSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDMOTORSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND'    ";
  100. 1000  COLOR 15,2
  101. 1010  LOCATE ,C:PRINT "              COMMON BASE              ";
  102. 1020  COLOR 7,0
  103. 1030  R=0:C=0
  104. 1040  RETURN
  105. 1050  '
  106. 1060  '.....preface
  107. 1070  T=7
  108. 1080  PRINT TAB(T);
  109. 1090  PRINT "This program is based on a program by David Leithauser in 'Programs"
  110. 1100  PRINT TAB(T);
  111. 1110  PRINT "for Electronic Circuit Design', Radio Shack cat.# 62-1054, pages"
  112. 1120  PRINT TAB(T);
  113. 1130  PRINT "105-118. The calculations are for standard NPN or PNP bipolar"
  114. 1140  PRINT TAB(T);
  115. 1150  PRINT "junction transistors."
  116. 1160  PRINT
  117. 1170  PRINT TAB(T);
  118. 1180  PRINT "It is recommended that you make a hard copy printout of the four"
  119. 1190  PRINT TAB(T);
  120. 1200  PRINT "typical circuits to use as a reference while running the program."
  121. 1210  PRINT TAB(T);
  122. 1220  PRINT "You have the option of asking the computer to suggest which of the"
  123. 1230  PRINT TAB(T);
  124. 1240  PRINT "four circuits might be appropriate for your application."
  125. 1250  PRINT
  126. 1260  PRINT TAB(T);
  127. 1270  PRINT "You will be asked for the source resistance of your circuit. The"
  128. 1280  PRINT TAB(T);
  129. 1290  PRINT "source resistance is the sum of the internal resistance Ri of the"
  130. 1300  PRINT TAB(T);
  131. 1310  PRINT "signal source plus physical resistor Rs, if there is one in your"
  132. 1320  PRINT TAB(T);
  133. 1330  PRINT "circuit."
  134. 1340  PRINT
  135. 1350  PRINT TAB(T);
  136. 1360  PRINT "Some of the values you will be asked to enter are essential. If you"
  137. 1370  PRINT TAB(T);
  138. 1380  PRINT "indicate that such values are unknown, the program will enter"
  139. 1390  PRINT TAB(T);
  140. 1400  PRINT "typical values, however it is recommended that for best results"
  141. 1410  PRINT TAB(T);
  142. 1420  PRINT "the actual values be obtained from the transistor manufacturer's"
  143. 1430  PRINT TAB(T);
  144. 1440  PRINT "data sheets."
  145. 1450  RETURN
  146. 1460  '
  147. 1470  '.....Transistor Circuits Program
  148. 1480  GOTO 1550
  149. 1490  '
  150. 1500  '.....format input line
  151. 1510  U$="######.###":LOCATE CSRLIN-1:PRINT STRING$(7,32);
  152. 1520  LOCATE CSRLIN,45:PRINT STRING$(19,".");USING U$;ZZ;
  153. 1530  RETURN
  154. 1540  '
  155. 1550  CLS
  156. 1560  PRINT " TRANSISTOR CIRCUITS MENU OPTIONS"
  157. 1570  PRINT UL$;
  158. 1580  PRINT " Press number in ( ) for:"
  159. 1590  PRINT UL$;
  160. 1600  PRINT "  (1) Transistor Circuit Characteristics"
  161. 1610  PRINT "  (2) Transistor Circuit Selection"
  162. 1620  PRINT "  (3) Emitter Resistor Computation"
  163. 1630  PRINT "  (4) QUIT"
  164. 1640  Z$=INKEY$:IF Z$="" THEN 1640
  165. 1650  IF Z$="1"THEN 1710
  166. 1660  IF Z$="2"THEN 2790
  167. 1670  IF Z$="3"THEN 3220
  168. 1680  IF Z$="4"THEN 80      'master menu
  169. 1690  GOTO 1640
  170. 1700  '
  171. 1710  CLS '.....transistor circuit characteristics
  172. 1720  PRINT " TRANSISTOR CIRCUIT CHARACTERISTICS"
  173. 1730  PRINT UL$;
  174. 1740  PRINT " Press number in ( ) for:"
  175. 1750  PRINT UL$;
  176. 1760  PRINT "  (1) Common Emitter Circuit"
  177. 1770  PRINT "  (2) Common Emitter Circuit with Emitter Resistor"
  178. 1780  PRINT "  (3) Common Collector Circuit"
  179. 1790  PRINT "  (4) Common Base Circuit"
  180. 1800  Z$=INKEY$:IF Z$=""THEN 1800
  181. 1810  N=VAL(Z$):IF N>=1 AND N<=4 THEN 1840
  182. 1820  GOTO 1800
  183. 1830  '
  184. 1840  CLS '.....circuit menu
  185. 1850  R=1:C=21
  186. 1860  IF N=1 THEN GOSUB 340
  187. 1870  IF N=2 THEN GOSUB 520
  188. 1880  IF N=3 THEN GOSUB 700
  189. 1890  IF N=4 THEN GOSUB 880
  190. 1900  '
  191. 1910  PRINT UL$;
  192. 1920  INPUT " ENTER: Small Signal Current Gain (Hfe).........(0 if unknown)...";F
  193. 1930  IF F=0 THEN F=50
  194. 1940  ZZ=F:GOSUB 1500:PRINT ""
  195. 1950  INPUT " ENTER: Value of Load Resistor RL...............................-";L
  196. 1960  IF L=0 THEN LOCATE CSRLIN-1:PRINT E$;:LOCATE CSRLIN-1:GOTO 1950
  197. 1970  ZZ=L:GOSUB 1500:PRINT " -"
  198. 1980  INPUT " ENTER: Value of Bias Resistor R1...............(0 if none).....-";X
  199. 1990  IF X=0 THEN X=10^-6:LOCATE CSRLIN-1:PRINT E$;:LOCATE CSRLIN-1:GOTO 2020
  200. 2000  ZZ=X:GOSUB 1500:PRINT " -"
  201. 2010  '
  202. 2020  IF X<>10^-6 THEN 2090
  203. 2030  LN=CSRLIN
  204. 2040  COLOR 0,7
  205. 2050  FOR Q=1 TO 5:LOCATE Q,38:PRINT "   ":NEXT Q:LOCATE 5,40:PRINT "I"
  206. 2060  LOCATE 6,39:PRINT "BSAVE"
  207. 2070  COLOR 7,0:LOCATE LN
  208. 2080  '
  209. 2090  INPUT " ENTER: Value of Bias Resistor R2...............(0 if none).....-";Y
  210. 2100  IF Y=0 THEN Y=10^-6:LOCATE CSRLIN-1:PRINT E$;:LOCATE CSRLIN-1:GOTO 2130
  211. 2110  ZZ=Y:GOSUB 1500:PRINT " -"
  212. 2120  '
  213. 2130  IF Y<>10^-6 THEN 2220
  214. 2140  LN=CSRLIN
  215. 2150  COLOR 0,7
  216. 2160  LOCATE 6,39:PRINT "MOTOR"
  217. 2170  FOR Q=7 TO 9:LOCATE Q,39:PRINT " ":NEXT Q
  218. 2180  LOCATE 8,40:PRINT " "
  219. 2190  LOCATE 10,39:PRINT "SOUND"
  220. 2200  COLOR 7,0:LOCATE LN
  221. 2210  '
  222. 2220  IF X=10^-6 AND Y=10^-6 THEN 2230 ELSE 2250
  223. 2230  LOCATE 6,39:COLOR 0,7:PRINT "SOUND":COLOR 7,0:LOCATE LN
  224. 2240  '
  225. 2250  A=1/X+1/Y
  226. 2260  R=1/A
  227. 2270  '
  228. 2280  PRINT " Does resistor Rs physically exist in your application?  (y/n)"
  229. 2290  Z$=INKEY$:IF Z$="" THEN 2290
  230. 2300  IF Z$="y"THEN S$="Ri+Rs":GOTO 2330
  231. 2310  IF Z$="n"THEN S$="Ri...":GOTO 2330
  232. 2320  GOTO 2290
  233. 2330  LN=CSRLIN-1:LOCATE LN:PRINT E$;:LOCATE LN
  234. 2340  IF Z$="n"THEN LOCATE 6,36:COLOR 0,7:PRINT "SOUNDSOUND":COLOR 7,0:LOCATE LN
  235. 2350  PRINT " ENTER: Source Resistance ";S$;"...............................-";
  236. 2360  INPUT S
  237. 2370  ZZ=S:GOSUB 1500:PRINT " -"
  238. 2380  IF N<>2 THEN 2410
  239. 2390  INPUT " ENTER: Value of Emitter Resistor Re............................-";E
  240. 2400  ZZ=E:GOSUB 1500:PRINT " -"
  241. 2410  INPUT " ENTER: Transistor Input Impedance (Hie).......(0 if unknown)..-";C
  242. 2420  IF C=0 THEN C=1100
  243. 2430  ZZ=C:GOSUB 1500:PRINT " -"
  244. 2440  IF N<>1 AND N<>3 THEN 2490
  245. 2450  INPUT " ENTER: Output Conductance (Hoe) in siemens.....(0 if unknown)...";Z
  246. 2460  IF Z=0 THEN Z=10^-6
  247. 2470  ZZ=Z:GOSUB 1500:PRINT " S"
  248. 2480  T=1/Z
  249. 2490  IF N<>1 THEN 2530
  250. 2500  K=R/(R+C)*(-F*T/(T+L))
  251. 2510  U=T
  252. 2520  P=S+1/(A+1/C)
  253. 2530  IF N<>2 THEN 2560
  254. 2540  K=-F*R/(R+C+(1+F)*E)
  255. 2550  P=S+1/(A+1/(C+(1+F)*E))
  256. 2560  IF N<>3 THEN 2610
  257. 2570  H=(1+F)/(1+Z*L)
  258. 2580  K=H*R/(R+C+H*L)
  259. 2590  P=S+1/(A+1/(C+H*L))
  260. 2600  U=1/((1+F)/(S*R/(S+R)+C)+Z)
  261. 2610  IF N<>4 THEN 2640
  262. 2620  K=F/(1+F)*R/(R+C/(1+F))
  263. 2630  P=S+1/(A+(1+F)/C)
  264. 2640  '
  265. 2650  PRINT "        Current Gain........................................... "
  266. 2660  ZZ=K:GOSUB 1500:PRINT ""
  267. 2670  PRINT "        Input Impedance........................................ "
  268. 2680  ZZ=P:GOSUB 1500:PRINT " -"
  269. 2690  PRINT "        Voltage Gain........................................... "
  270. 2700  ZZ=K*L/P:GOSUB 1500:PRINT ""
  271. 2710  IF N=2 OR N=4 THEN J=L
  272. 2720  IF N=1 OR N=3 THEN J=U*L/(U+L)
  273. 2730  PRINT "        Output Resistance...................................... "
  274. 2740  ZZ=J:GOSUB 1500:PRINT " -"
  275. 2750  N=0:F=0:L=0:X=0:Y=0:A=0:R=0:S=0:E=0:C=0:Z=0:T=0:K=0:U=0:P=0:H=0
  276. 2760  GOTO 3510
  277. 2770  '
  278. 2780  '
  279. 2790  CLS  '.....transistor circuit selection
  280. 2800  PRINT " TRANSISTOR CIRCUIT SELECTION"
  281. 2810  PRINT UL$;
  282. 2820  INPUT " ENTER: Transistor Input Impedance (Hie)....(0 if unknown).....-";Z
  283. 2830  IF Z=0 THEN Z=1111
  284. 2840  ZZ=Z:GOSUB 1500:PRINT " -"
  285. 2850  INPUT " ENTER: Transistor Gain (Hfe)...............(0 if unknown).....-";F
  286. 2860  IF F=0 THEN F=51
  287. 2870  ZZ=F:GOSUB 1500:PRINT ""
  288. 2880  INPUT " ENTER: Load Resistance RL..................(0 if Don't Care)..-";L
  289. 2890  ZZ=L:GOSUB 1500:PRINT " -"
  290. 2900  INPUT " ENTER: Source Resistance Ri+Rs................................-";S
  291. 2910  IF S=0 THEN LOCATE CSRLIN-1:PRINT E$;:LOCATE CSRLIN-1:GOTO 2900
  292. 2920  ZZ=S:GOSUB 1500:PRINT " -"
  293. 2930  INPUT " ENTER: Desired Current Gain................(1 if Don't Care)...";K
  294. 2940  ZZ=K:GOSUB 1500:PRINT ""
  295. 2950  INPUT " ENTER: Desired Voltage Gain................(1 if Don't Care)...";V
  296. 2960  ZZ=V:GOSUB 1500:PRINT ""
  297. 2970  INPUT " ENTER: Desired Output Impedance............(1 if Don't Care)..-";U
  298. 2980  ZZ=U:GOSUB 1500:PRINT " -"
  299. 2990  INPUT " ENTER: Desired Input Impedance.............(1 if Don't Care)..-";E
  300. 3000  ZZ=E:GOSUB 1500:PRINT " -"
  301. 3010  PRINT TAB(9);" Enter Desired Output Polarity as -1 if inverted."
  302. 3020  PRINT TAB(9);" Enter Desired Output Polarity as  0 if Don't Care."
  303. 3030  PRINT TAB(9);" Enter Desired Output Polarity as  1 if non-inverted."
  304. 3040  INPUT " ENTER: Desired Output Polarity.................................";P
  305. 3050  LOCATE CSRLIN-1:PRINT STRING$(7,32);
  306. 3060  LOCATE CSRLIN,45:PRINT STRING$(19,".");USING "+#####";P
  307. 3070  PRINT UL$;
  308. 3080  N=0:PRINT " The following circuits may work:"
  309. 3090  PRINT
  310. 3100  IF P<=0 AND V=>1 AND K=>1 AND (F=51 OR K<=F*1.2) AND (E=1 OR Z=1111 OR E<S+Z*1.2) AND (L=0 OR U=1 OR ABS(U-L)<U/5)THEN PRINT " COMMON EMITTER":N=N+1
  311. 3110  '
  312. 3120  IF P=>0 AND K=>1 AND (F=51 OR K<=1+F*1.2) AND V<=1 AND (E=1 OR L=0 OR Z=1111 OR E>Z+S) AND (U=1 OR L=0 OR F=51 OR Z=1111 OR ABS(U-(S+Z)/(1+F))<U/5) THEN PRINT " COMMON COLLECTOR":N=N+1
  313. 3130  '
  314. 3140  IF P=>0 AND K<=1 AND V=>1 AND (E=1 OR Z=1111 OR F=51 OR E<Z) AND (U=1 OR L-0 OR ABS(U-L)<U/5) THEN PRINT " COMMON BASE":N=N+1
  315. 3150  '
  316. 3160  IF P<=0 AND K=>1 AND (F=51 OR K<=F*1.2) AND V=>1 AND (E=1 OR Z=1111 OR E>Z) AND (L=0 OR U=1 OR ABS(U-L)<U/5) THEN PRINT " COMMON EMITTER with EMITTER RESISTOR":N=N+1
  317. 3170  IF N=0 THEN PRINT " NONE OF THESE CIRCUITS WILL WORK!"
  318. 3180  N=0:Z=0:F=0:L=0:S=0:K=0:V=0:U=0:E=0:P=0
  319. 3190  GOTO 3510
  320. 3200  '
  321. 3210  '
  322. 3220  CLS'.....emitter resistor calculation
  323. 3230  R=1:C=21:GOSUB 520:PRINT ""
  324. 3240  PRINT
  325. 3250  PRINT " Emitter Resistor R3:"
  326. 3260  PRINT UL$;
  327. 3270  INPUT " ENTER: Desired Voltage Gain................(0 if Don't Care)...";V
  328. 3280  ZZ=V:GOSUB 1500:PRINT ""
  329. 3290  IF V=0 THEN 3320
  330. 3300  INPUT " ENTER: Load Resistor RL....................(0 if Don't Care)..-";L
  331. 3310  ZZ=L:GOSUB 1500:PRINT " -"
  332. 3320  INPUT " ENTER: Desired Circuit Input Impedance.....(0 if Don't Care)..-";R
  333. 3330  ZZ=R:GOSUB 1500:PRINT " -"
  334. 3340  IF R=0 THEN 3410
  335. 3350  INPUT " ENTER: Transistor's Input Impedance........(0 if unknown).....-";Z
  336. 3360  ZZ=Z:GOSUB 1500:PRINT " -"
  337. 3370  IF Z=0 THEN Z=1111
  338. 3380  INPUT " ENTER: Transistor's Current Gain (Hfe).....(0 if unknown)......";F
  339. 3390  ZZ=F:GOSUB 1500:PRINT ""
  340. 3400  IF F=0 THEN F=51
  341. 3410  PRINT UL$;
  342. 3420  IF V=0 THEN PRINT " Emitter Resistor R3 =";USING U$;(R-Z)/(1+F);:PRINT " -"
  343. 3430  IF R=0 AND V*L<>0 THEN PRINT " Emitter Resistor R3 =";USING U$;L/V;:PRINT " -"
  344. 3440  IF R=0 AND L=0 AND V<>0 THEN PRINT " Any Value Emitter Resistor R3 as long as R3 = RL <UNK! {00F6}>";V;" ohms"
  345. 3450  IF R=0 AND V=0 THEN PRINT " Any value of R3 will work."
  346. 3460  IF L<>0 AND R<>0 AND V<>0 THEN IF L/V=(R-Z)/(1+F) THEN PRINT " Emitter Resistor R3 =";USING U$;L/V;:PRINT " ohms
  347. 3470  IF R<>0 AND V<>0 THEN IF L/V<>(R-Z)/(1+F) AND L<>0 THEN PRINT " CONTRADICTORY CONDITIONS. NO VALUE OF R3 WILL WORK!"
  348. 3480  N=0:V=0:L=0:R=0:Z=0:F=0
  349. 3490  GOTO 3510
  350. 3500  '
  351. 3510  '.....end
  352. 3520  GOSUB 3560
  353. 3530  CLS:GOTO 80
  354. 3540  END
  355. 3550  '
  356. 3560  'HARDCOPY
  357. 3570  GOSUB 3680:LOCATE 25,2:COLOR 14,6
  358. 3580  PRINT " Press 1 to print screen, 2 to print screen & ";
  359. 3590  PRINT "advance paper, or 3 to continue.";:COLOR 7,0
  360. 3600  Z$=INKEY$:IF Z$="3"THEN GOSUB 3680:RETURN
  361. 3610  IF Z$="1"OR Z$="2"THEN GOSUB 3680:GOTO 3630
  362. 3620  GOTO 3600
  363. 3630  FOR QX=1 TO 24:FOR QY=1 TO 80
  364. 3640  LPRINT CHR$(SCREEN(QX,QY));
  365. 3650  NEXT QY:NEXT QX
  366. 3660  IF Z$="2"THEN LPRINT CHR$(12)
  367. 3670  GOTO 3570
  368. 3680  LOCATE 25,1:PRINT STRING$(80,32);:RETURN
  369.